package  
{
	import flash.display.DisplayObjectContainer;
	import flash.display.MovieClip;
	import flash.text.TextFormat;
	import flash.text.TextFormatAlign;
	import Menus.MenuCreditos;
	import Menus.MenuInicial;
	import Menus.MenuTutorial;
	import TangoGames.Menus.MenuBase;
	import TangoGames.Menus.MenuControle;
	/**
	 * ...
	 * @author Arthur&Honorato
	 */
	public class MenusJogo extends MenuControle 
	{
		//variaveis do menu principal
		public static const MENU_PRINCIPAL:String =  "MenuPrincipal";
		public static const MENU_PRINCIPAL_OPCAO_NOVO_JOGO:uint =  1;
		
		//Formatação de texto
		private	var TF_txtForm:TextFormat;
		
		//Fundo dos Creditos e do Tutorial
		private var MC_FundoCreditos:MovieClip;
		private var MC_FundoTutorial:MovieClip;
		
		//imagens de fundo do menu
		private var MC_NovoJogo:MovieClip;
		private var MC_Creditos:MovieClip;
		private var MC_Select:MovieClip;
		private var MC_Tutorial:MovieClip;
		private var MC_Return:MovieClip;
		
		
		public function MenusJogo(_main:DisplayObjectContainer) {
			super(_main);
			configuraFormatacao();
			
			MC_FundoCreditos = new CreditosFundo();
			MC_FundoTutorial = new TutorialFundo();
			MC_NovoJogo = new NewGame();
			MC_Creditos = new Creditos();
			MC_Select = new StageSelect();
			MC_Tutorial = new Tutorial();
			MC_Return = new ReturnM();
			
			
		}
		//****************************************************
		//****    Metodos privados da classe              ****
		//****************************************************
		private function configuraFormatacao():void {
			TF_txtForm = new TextFormat;
			TF_txtForm.size = 50;
			TF_txtForm.align = TextFormatAlign.CENTER;
			TF_txtForm.bold = true;			
		}
		//****************************************************
		//****    Metodos de definição de menus           ****
		//****************************************************		
		/**
		 * Define Menu Principal do Jogo, sobrecreve obrigatóriamente o método da classe MenuControle.
		 * @return
		 * Retorna uma instancia do Menu do tipo MenuBase
		 */
		override protected function defineMenuInicial():MenuBase 
		{
			var mn:MenuBase = new MenuInicial(MENU_PRINCIPAL);
			mn.adicionaOpcao("New Game", 1,null, MC_NovoJogo);
			mn.adicionaOpcao("Stage Select", 2, defineMenuTutorial, MC_Tutorial);
			mn.adicionaOpcao("Credits", 3, defineMenuCreditos, MC_Creditos);
			return mn;
		}
				
		private function defineMenuCreditos():MenuBase {
			var mn:MenuBase = new MenuCreditos("MenuCreditos",MC_FundoCreditos);
			mn.adicionaOpcao("Return",99 , defineMenuInicial,MC_Return);   
			mn.formatacao = TF_txtForm;
			return mn;
		}
		private function defineMenuTutorial():MenuBase {
			var mn:MenuBase = new MenuTutorial("MenuTutorial",MC_FundoTutorial);
			mn.adicionaOpcao("Return",99 , defineMenuInicial,MC_Return);   
			mn.formatacao = TF_txtForm;
			return mn;
		}
		
		
		
	}


}